package com.shujia.spark.core

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

object Demo11Sort {
  def main(args:Array[String]): Unit ={
    val conf: SparkConf = new SparkConf().setAppName("sort").setMaster("local")

    //创建spark对象
    val sc = new SparkContext(conf)

    val listRDD: RDD[Int] = sc.parallelize(List(5,1,6,2,4,7,2,78))

    /**
      * sortBY:指定一个排序的列，默认时升序
      */
    val sortByRDD: RDD[Int] = listRDD.sortBy(i =>i,false)

    /**
      * ascending: 上升
      * true代表采用升序的排序方式
      * false代表采用降序的排序方式
      */
    sortByRDD.foreach(println)

    //读取一组kv格式的数据
    val kvRDD: RDD[(String, Any)] = sc.parallelize(List(("java",123),("linux",2314),("scala","12")))

    /**
      * sortByKey:通过key进行排序
      */
    val sortByKeyRDD: RDD[(String, Any)] = kvRDD.sortByKey(false)
    sortByKeyRDD.foreach(println)
  }
}
